import java.util.Arrays;
import java.util.Collections;
import java.util.List;


public class Leetcode606 {
    public static void main(String[] args) {

    }

    public String tree2str(TreeNode root) {
        if (root == null) {
            return null;
        }

        StringBuilder res = new StringBuilder();
        tree2str(res, root);

        return res.toString();
    }

    public void tree2str(StringBuilder res, TreeNode root) {
        res.append(root.val);

        if (root.left == null) {
            if (root.right != null) {
                res.append("()");

                res.append("(");
                tree2str(res, root.right);
                res.append(")");
            }
        } else {
            if (root.right == null) {
                res.append("(");
                tree2str(res, root.left);
                res.append(")");
            } else {
                res.append("(");
                tree2str(res, root.left);
                res.append(")");

                res.append("(");
                tree2str(res, root.right);
                res.append(")");
            }
        }
    }
}

